//package com.fly.git.common.aspect;
//
//import javax.servlet.http.HttpServletRequest;
//
//import org.apache.commons.lang3.StringUtils;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.Around;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Pointcut;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//
//import com.fly.git.common.entity.JsonResult;
//import com.fly.git.common.utils.HttpRequestUtils;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// *
// * aop 处理IP白名单
// *
// * @author 00fly
// * @version [版本号, 2018年12月2日]
// * @see [相关类/方法]
// * @since [产品/模块版本]
// */
//@Slf4j
//@Aspect
//@Component
//public class WhiteListAspect
//{
//    /**
//     * 无默认值会抛出IllegalArgumentException
//     */
//    @Value("${white.list:10.10.11.164}")
//    private String whiteList;
//
//    /**
//     * 切入点，方便被通知引用
//     */
//    @Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)")
//    public void point()
//    {
//    }
//
//    @Around("point()")
//    public Object around(ProceedingJoinPoint joinPoint)
//        throws Throwable
//    {
//        HttpServletRequest request = HttpRequestUtils.getHttpServletRequest();
//        if (request != null)
//        {
//            String ip = request.getRemoteAddr();
//            log.info("★★★★★★★★ whiteList: {}, visit ip: {}", whiteList, ip);
//            if (!StringUtils.contains(whiteList, ip))
//            {
//                String msg = String.format("禁止访问，请联系管理员添加白名单IP：%s", ip);
//                return JsonResult.error(msg);
//            }
//        }
//        return joinPoint.proceed();
//    }
//}
